Invalid username or password.
Demo Credentials FSO: fso1/fso123   SFSO: sfso1/sfso123
Dist. DO: do_district/do123
State DO: do_state/state123   Commissioner: commissioner/comm123
FDCA

Food Safety Monthly Diary

FDCA Gujarat  ·  FSSAI

 · 

Dashboard

Loading…

FSO / SFSO Monthly Diary

FDCA Gujarat — Monthly Activity Report

Basic Information
Sampling & Inspection
Registration Authority
VVIP & Raids
Adjudication Cases
Adjudication Cases Filed
Unsafe Cases Filed
Seizures
Other Activities

Designated Officer — Monthly Diary

FDCA Gujarat · Complete monthly report as per prescribed format

Basic Information
License Applications
No. of Sanctions Given & Notices
Sanctions Given
Pending & Notices
DLAC
📎 Note: Upload of DLAC constitution and meeting minutes will be available after Google Sheets integration is configured.
Details of Eat Right Activities
Consumer Grievances
RTI & PM Portal
Food Safety on Wheels Activity Conducted
Enforcement Samples Summary District-level aggregated data by food category
Food CategorySamples CollectedNo. of SeizuresWeight of Seizure (Kg)Price of Seizure (₹)Samples AnalysedNon-conformingUnsafeSubstandardLabelling DefectsMisleading ClaimsOthers
Surveillance Samples Summary District-level aggregated data by food category
Food CategorySamples CollectedSamples AnalysedNon-conformingUnsafeSubstandardLabelling DefectsMisleading ClaimsOthersEnf. Samples of Failed

Submissions

Diary submissions

Verify Reports

Review and verify FSO/SFSO submissions in your district

Reports & Analytics

FDCA Gujarat — District-wise performance

User Management

Add, edit, and manage staff accounts

NameUsernameRoleDistrictCircleStatusActions

Set Monthly Targets

Assign separate performance targets for FSO and SFSO

Target Configuration
Saved Targets
MonthApplied ToEnf. SamplesSurv. SamplesInspectionsRaids

Google Sheets Integration

Live database — free, unlimited users, real-time sync

1 Spreadsheet · 6 Sheets · ₹0 · Unlimited entries

All submissions sync to Google Sheets automatically. Export to Excel anytime with one click.

Sheets Required (inside ONE Google Spreadsheet file)
Sheet 1 — Users
id, name, username, password, role, district, circle, status
Sheet 2 — FSO_Diary
All FSO/SFSO form fields + userId + month + verifyStatus
Sheet 3 — DO_Diary
All DO form fields + userId + month + status + timestamp
Sheet 4 — Seizures
submissionId, commodity, qty_kg, price_rs
Sheet 5 — Targets
month, applyTo, enfSamples, survSamples, inspections, raids
Sheet 6 — SampleData
submissionId, type, category, collected, analysed, nonconforming…
Step-by-Step: Create Google Apps Script Web App URL
1

Create Google Spreadsheet

Go to sheets.google.com → Blank spreadsheet → Name it "FDCA Monthly Diary DB". Add 6 sheets: Users FSO_Diary DO_Diary Seizures Targets SampleData

2

Open Apps Script Editor

In your Spreadsheet → Click Extensions menu → Click Apps Script. Delete all existing code in the editor.

3

Paste this complete script

const SS = SpreadsheetApp.getActiveSpreadsheet(); function doPost(e) { try { const d = JSON.parse(e.postData.contents); const sheet = SS.getSheetByName(d.sheet); if (!sheet) return resp({error:'Sheet not found: '+d.sheet}); sheet.appendRow(flatten(d.sheet, d.data)); return resp({success:true}); } catch(err) { return resp({error:err.toString()}); } } function doGet(e) { if (e.parameter.action==='ping') return resp({status:'connected'}); if (e.parameter.sheet) { const s = SS.getSheetByName(e.parameter.sheet); if (!s) return resp({error:'Sheet not found'}); return resp({data: s.getDataRange().getValues()}); } return resp({status:'FDCA Monthly Diary API ready'}); } function flatten(sheet, d) { const ts = new Date().toISOString(); if (sheet==='Users') return [d.id||'',d.name||'',d.username||'',d.role||'',d.district||'',d.circle||'',d.status||'',ts]; if (sheet==='FSO_Diary') return [d.userId||'',d.month||'',d.name||'',d.circle||'',d.district||'',d.enfSamples||0,d.survSamples||0,d.inspections||0,d.rbis||0,d.regAuth||'',d.adjReq||0,d.adjRec||0,d.adjFiled||0,d.unsReq||0,d.unsRec||0,d.unsFiled||0,d.raids||0,d.asl||0,d.vvip||0,d.vvipSamples||0,d.other||'',d.status||'',d.verifyStatus||'',ts]; if (sheet==='DO_Diary') return [d.userId||'',d.month||'',d.name||'',d.circle||'',d.licApps||0,d.licIssued||0,d.licPending||0,d.sancSub||0,d.sancMis||0,d.sancAdv||0,d.sancOth||0,d.sancPend||0,d.improve||0,d.recalls||0,d.dlac||'',d.dlacDate||'',d.dlacMeet||0,d.foodPoison||0,d.fostac||0,d.hygiene||0,d.campus||0,d.street||0,d.bhog||0,d.schools||0,d.markets||0,d.station||0,d.grievRecv||0,d.grievRes||0,d.rtiRecv||0,d.rtiDisp||0,d.pmRecv||0,d.pmRes||0,d.fowTest||0,d.fowTrain||0,d.fowAware||0,d.status||'',ts]; if (sheet==='Targets') return [d.month||'',d.applyTo||'',d.enfSamples||0,d.survSamples||0,d.inspections||0,d.raids||0,ts]; return Object.values(d).concat([ts]); } function resp(obj) { return ContentService .createTextOutput(JSON.stringify(obj)) .setMimeType(ContentService.MimeType.JSON); }
4

Save and Deploy as Web App

1. Click 💾 Save (Ctrl+S)
2. Click DeployNew deployment
3. Click ⚙ gear icon → Select Web app
4. Execute as: Me
5. Who has access: Anyone
6. Click DeployAuthorize access → Choose Google account → Allow
7. Copy the Web app URL (starts with https://script.google.com/macros/s/…)

5

Paste URL below and test

Paste the copied Web App URL in the field below → click Save & Test Connection. If "Connected" appears, all form submissions will auto-sync to your Google Sheet.

Connection Settings